package com.ruoyi.central.utils.pojo;

import com.ruoyi.central.domain.TopCentralTaskCmd;
import com.ruoyi.central.domain.TopCentralTaskCmdRun;
import com.ruoyi.common.enums.common.TaskStatusEnum;
import com.ruoyi.common.exception.base.domian.ReadonlyEntityException;
import com.ruoyi.common.exception.base.service.ServiceException;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bean.EnumUtils;

import javax.validation.constraints.NotNull;

/**
 * @Classname TaskCmdRunUtils
 * @Author: sunluquan
 * @Date: 2022/7/5 15:30
 * @Description TODO
 */
public class TaskCmdRunUtils{

    /**
     * 操作检测  如果需要操作 对象 之前进行检测 是否能够进行操作
     * @param taskCmdRun
     */
    public static void operationCheck(@NotNull TopCentralTaskCmdRun taskCmdRun){

        if(EnumUtils.equals(TaskStatusEnum.EXECUTED_FINISH,taskCmdRun.getTaskStatus())){

            final TopCentralTaskCmd taskCmd = taskCmdRun.getTaskCmd();

            if(StringUtils.isNotNull(taskCmd)){
                throw new ReadonlyEntityException(StringUtils.format("任务执行指令:{} , 执行状态为：{} 不能进行操作！",taskCmd.getName(),EnumUtils.toEnum(TaskStatusEnum.class,taskCmdRun.getTaskStatus())));
            }

            throw new ReadonlyEntityException(StringUtils.format("实体数据执行状态为：{} 是只读的 ， 不能进行操作！",EnumUtils.toEnum(TaskStatusEnum.class,taskCmdRun.getTaskStatus())));

        }
    }
}
